package com.oig.sys.msg.app.impl;

import com.oig.sys.msg.app.IAppMqMsgService;
import com.oig.sys.msg.dto.MqMsgDto;
import com.oig.sys.msg.entity.TbMqMsg;
import com.oig.sys.msg.service.ITbMqMsgService;
import com.oig.sys.msg.vo.MqMsgVo;
import io.seata.spring.annotation.GlobalLock;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
@Slf4j
@RequiredArgsConstructor
public class AppMqMsgServiceImpl implements IAppMqMsgService {

    private final ITbMqMsgService mqMsgService;


    @Override
    public MqMsgVo addMqMsg(MqMsgDto mqMsgDto) {
        return this.mqMsgService.addMqMsg(mqMsgDto);
    }

    @Override
    public TbMqMsg getMqMsg(Integer id) {
        return this.mqMsgService.getMqMsg(id);
    }

    @Override
    public List<TbMqMsg> findAllUnReadyMsg() {
        return this.mqMsgService.findAllUnReadyMsg();
    }

    @Override
    public List<TbMqMsg> findAllUnSendMqMsg() {
        return this.mqMsgService.findAllUnSendMqMsg();
    }

    @GlobalLock
    @Override
    public void updateMsgError(TbMqMsg mqMsg) {
        log.debug("mq msg set error..");
        this.mqMsgService.updateMsgError(mqMsg);
    }

    @GlobalLock
    @Override
    public void updateMsgReady(TbMqMsg mqMsg) {
        log.debug("mq msg ready..");
        this.mqMsgService.updateMsgReady(mqMsg);
    }



    @Override
    public void moveMsgToHis(TbMqMsg mqMsg) {
        log.debug("mq msg move to his..");
        this.mqMsgService.moveMsgToHis(mqMsg);
    }
}
